package com.clwl.supervise.superviseapp.mapper.supervise;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clwl.supervise.superviseapp.entity.supervise.JgSamplingPush;
import com.clwl.supervise.superviseapp.entity.vo.JgSamplingStatistics;
import com.clwl.supervise.superviseapp.entity.vo.TcCompanyVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

@Mapper
public interface JgSamplingPushMapper extends BaseMapper<JgSamplingPush> {
    /**
     * 按推送id查询推送企业信息
     *
     * @param pushId 推送id
     * @return 返回结果
     */
    TcCompanyVo queryPushCompanyByPushId(@Param("pushId") Long pushId);

    /**
     * 查看企业历史记录列表
     *
     * @param page               分页参数
     * @param companyId          主体ID
     * @param supProcess         业态类别
     * @param jgProcessCodeTwo   业态类别二
     * @param cancellationStatus 注销状态
     * @param coverStatus        覆盖状态
     * @param year               年份
     * @param startTime          开始时间
     * @param endTime            结束时间
     * @return
     */
    Page<TcCompanyVo> queryPushHistoryList(Page<Map<String, Object>> page, @Param("companyId") Long companyId, @Param("supProcess") String supProcess, @Param("jgProcessCodeTwo") String jgProcessCodeTwo, @Param("cancellationStatus") String cancellationStatus, @Param("coverStatus") String coverStatus, @Param("year") String year, @Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 查询统计抽检企业
     *
     * @param deptId
     * @param companyName
     * @param supProcess
     * @param jgProcessCodeTwo
     * @param claimStatus
     * @param checkStatus
     * @param cancellationStatus
     * @param coverStatus
     * @param year
     * @param startTime
     * @param endTime
     * @return
     */
    JgSamplingStatistics findSamplingStatistics(@Param("deptId") Long deptId, @Param("companyName") String companyName, @Param("supProcess") String supProcess, @Param("jgProcessCodeTwo") String jgProcessCodeTwo, @Param("claimStatus") String claimStatus, @Param("checkStatus") String checkStatus,
                                                @Param("cancellationStatus") String cancellationStatus, @Param("coverStatus") String coverStatus, @Param("year") String year, @Param("startTime") String startTime, @Param("endTime") String endTime);
}